\documentclass[UTF8]{ctexart}
\usepackage{graphicx} %插入图片
\usepackage{tikz} %画流程图
\usetikzlibrary{shapes,arrows}

\usepackage{listings}   %插入代码
\lstset{
    columns=fixed,       
%    numbers=left,                                        % 在左侧显示行号
%    frame=none,                                          % 不显示背景边框
    %backgroundcolor=\color[RGB]{245,245,244},            % 设定背景颜色
    keywordstyle=\color[RGB]{40,40,255},                 % 设定关键字颜色
%    numberstyle=\footnotesize\color{darkgray},           % 设定行号格式
    commentstyle=\it\color[RGB]{0,96,96},                % 设置代码注释的格式
    stringstyle=\rmfamily\slshape\color[RGB]{128,0,0},   % 设置字符串格式
    showstringspaces=false,                              % 不显示字符串中的空格
    language=c++,                                        % 设置语言
}

\title{SQLite性能优化}
\author{Wang Huan}
\date{2019年7月}

\begin{document}
\maketitle %文章标题
\begin{figure}[h]
\centering
\includegraphics[scale=.5]{sqlite.jpg}
%\caption{sqlite图标}
\end{figure}
\newpage
\tableofcontents %文章目录
\newpage

\section{SQLite环境}
%\begin{figure}[h]
%\centering
%\includegraphics[scale=.5]{sqlite.jpg}
%\caption{sqlite图标}
%\end{figure}

\textbf{版本号}\par
\begin{lstlisting}[language=c++]
	SQLite core libversion：3.24.0
	SQLite core sourceid：2018-06-04 19:24:41 c7ee083322
\end{lstlisting}

\subsection{HotDB测试}
\textbf{读写测试}\par
\subparagraph{DDR：}
\begin{lstlisting}[language=c++]
	插入1K条512byte数据记录：total: 794916us, average: 794us
	查询1K条512byte数据记录：total: 90530us,  average: 90us
\end{lstlisting}

\subparagraph{FLASH：}
\begin{lstlisting}[language=c++]
	插入1K条512byte数据记录：total: 40276693us, average: 40276us
	查询1K条512byte数据记录：total: 81753us,  average: 81us
\end{lstlisting}
\newpage

\section{SQLite数据库优化}
\textbf{版本号}\par
\begin{lstlisting}[language=c++]
	SQLite core libversion：3.24.0
	SQLite core sourceid：2018-06-04 19:24:41 c7ee083322
\end{lstlisting}

\subsection{HotDB2测试}
\subparagraph{版本号：V3.141，插入测试。存储：NOR FLASH}
\begin{lstlisting}[language=c++]
	插入 1K条512byte数据记录：total: 242760us, average: 242us
	插入 2K条512byte数据记录：total: 264600us, average: 132us
	插入 3K条512byte数据记录：total: 375342us, average: 125us
	插入 4K条512byte数据记录：total: 255241us, average: 63us
	插入 5K条512byte数据记录：total: 260325us, average: 52us
	插入 6K条512byte数据记录：total: 407810us, average: 67us
	插入 7K条512byte数据记录：total: 338215us, average: 48us
	插入 8K条512byte数据记录：total: 415761us, average: 51us
	插入 9K条512byte数据记录：total: 476042us, average: 52us
	插入10K条512byte数据记录：total: 301803us, average: 30us
\end{lstlisting}

\subparagraph{版本号：V3.141，查询测试。存储：NOR FLASH}
\begin{lstlisting}[language=c++]
	查询10K条512byte数据记录：total: 197563us, average: 19us
	查询10K条512byte数据记录：total: 200630us, average: 20us
	查询10K条512byte数据记录：total: 200207us, average: 20us
	查询10K条512byte数据记录：total: 197566us, average: 19us
	查询10K条512byte数据记录：total: 201163us, average: 20us
	查询10K条512byte数据记录：total: 199774us, average: 19us
	查询10K条512byte数据记录：total: 200697us, average: 20us
	查询10K条512byte数据记录：total: 200578us, average: 20us
	查询10K条512byte数据记录：total: 200665us, average: 20us
	查询10K条512byte数据记录：total: 196919us, average: 19us
\end{lstlisting}

\subparagraph{注意} 在进行查询操作时，第一次打开数据库，需要对数据库进行一次遍历操作，否则的话，第一次对数据库的查询操作需要的时间大约为上面记录时间的3倍左右。

\subsection{HotDB2插入与查询优化数据量化倍数}

\begin{table}[!hbp]
	\caption{性能优化率}
	\centering
	\begin{tabular}{|c|c|c|c|}
		\hline 版本号 &操作 &时间 &倍数\\
		\hline HotDB2 &插入 &40276us &-\\
		\hline HotDB2 &查询 &81us &-\\
		\hline V3.141 &插入 &100us &40276/100=402\\
		\hline V3.141 &查询 &20us &81/20=4.05\\
		\hline
	\end{tabular}
\end{table} 

\subsection{HotDB2优化点}
将现在SQLite的插入与查询操作中的事务（Transaction）改为用户手动操作完成。\\
\subparagraph{BEGIN} 开始事务处理。
\subparagraph{COMMIT} 保存更改

\end{document}